/**
 * 小驼峰转下划线
 * 下划线转小驼峰
 */

let a = "addSomeNumber";
let newA = a.replace(/[A-Z]/g, (s) => "_" + s.toLocaleLowerCase());
console.log(newA);

let b = "add_some_number";
let newB = a.replace(/\_([a-z])/g, (s) => s.toUpperCase());
console.log(newB);


// const abs =  'add_some_number'.replace(/\_([a-z])/g,(s)=> s.toUpperCase())
// console.log(abs);

// const res =  'addSomeNumber'.replace(/[A-Z]/g,(s)=> '_' + s.toLowerCase())
// console.log(res);

const ll = b.replaceAll(/\_([a-z])/g,(s)=> s.split("_")[1].toUpperCase())
console.log(ll);

// 下划线小驼峰转大驼峰 

function toPascalCase(str) {
    return str
      .split('_') // 按下划线分割字符串
      .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()) // 将每个单词的首字母大写，其余部分小写
    //   .join(''); // 合并单词，去除下划线
  }
  
  // 测试用例
  console.log(toPascalCase("hello_world")); // 输出: HelloWorld
  console.log(toPascalCase("convert_this_to_pascal")); // 输出: ConvertThisToPascal

  console.log('hello_world'.split(new RegExp("_")).filter(Boolean));
  
  